//GA OMP onemax
//$Id: onemax_ga_omp.cpp 710 2012-05-28 16:57:27Z Oleg.Bulychov@gmail.com $
#include "stdafx.h"

#include "../../ga/onemax_ga.h"
#include "solvers/ga/ga_omp.h"
#include "src/heo/include/run_omp.h"

typedef OneMax_Problem  TProblem;
typedef OneMax_Solution TSolution;
typedef OneMax_Config   TConfig;
typedef OneMax_History  THistory;

typedef Environment<TProblem, TSolution, TConfig, THistory>   TEnvironment;

typedef struct GA_Traits<TEnvironment>              TTraits;
typedef GA_OMP<TTraits>                             TSolver;

static struct ga_register
{
    ga_register()
    {
        TSolver::register_Selection< ga::selection::tournament_selection >();
        TSolver::register_Selection< ga::selection::roulette_selection >();
        TSolver::register_Selection< ga::selection::random_selection >();

        TSolver::register_Operator< ga::inter_operator::crossover>();
        TSolver::register_Operator< ga::inter_operator::mutation>();
    }
} reg;


int main(int argc, char* argv[])
{
    return Run_OMP<TSolver>(argc, argv);
}
//EOF!
